INTRODUCTION       1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1


Congratulations in your interest in the Sorting Tutor!  You
have chosen a high quality tutor that will provide you with
the best opportunity to understand the concepts behind
computerized sorting.

This manual is a reference to the Sorting Tutor.  The
Sorting Tutor offers a complete learning guide to six common
sorting algorithms.  We trust you will find this guide an
informative aid that will allow you to successfully build
sorting algorithms necessary in the construction of various
computer programs.


Who Should Read This Manual

This manual is intended for novice to advanced programmers. 
For the novice, Chapter 1 provides basic information for
starting and using the Sorting Tutor.  Chapters 3 & 6
introduce the novice programmer to three basic sorting
algorithms.

For the advanced programmer, Chapters 3 through 8 explain
each of the nine sorting algorithms in full detail.  The
advanced programmer may simply go to the sorting algorithm
that is of most interest.  

For all users, chapters 2 through 8 provide examples for
exchange and insertion sorts.  


What You Should Already Know

In order to get the most out of this manual, you should be
familiar with some fundamental programming aspects.  You
should know how to code LOOPs, IF-THEN-ELSEs, ARRAYS (one
dimensional), and ASSIGNMENT statements.

You should also be familiar with QuickBASIC's primary
commands since the program examples utilized in the Sorting
Tutor are in QuickBASIC.  This does not mean that you have
to know every QuickBASIC command, but you should be
comfortable in relating the commands used in the Sorting
Tutor with the language that you are most familiar with.


How to Use This Manual

This manual is not meant to be read from cover to cover.  It
is a reference manual, so use it to look up specific
problems that you want to solve.  To get the most out of
this manual, refer to the glossary whenever you are not 
entirely clear about any computer terms used.
INTRODUCTION

INTRODUCTION


What This Manual is About

   For ease of reference, this manual is organized (except for Getting 
   Started, chapter 1) according to the options on the main menu screen.
   Each sorting algorithm displayed on the main menu can be classified
   into the following two types:


 	  Exchange sorts:  (BUBBLE, SHAKER, and QUICK sort) 
          Exchange sorts utilize exchanges as an indirect
          method of selection, and speed up towards the
          end.

     	  Insertion sorts:  (LINEAR INSERTION, BINARY
          INSERTION, and SHELL sort)  Insertion sorts take
          each successive piece of data and place it into
          the correct position relative to all previously
          considered items.


The manual consists largely of information on six sorting
algorithms; BUBBLE, SHAKER, QUICK, LINEAR INSERTION, BINARY
INSERTION, and SHELL sort.  The code that is used for each
sorting algorithm is just one way to code an application; it
is not the only way.  The reference section in this manual
provides additional information on these sorting algorithms.

GETTING STARTED    2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 


The program disk that you have received with this package is
ready to run.  You may start this program by simply placing
it into drive A: and enter: SORTING.  The introduction screen
is displayed on your screen after you have pressed the enter
key.  To continue to the main menu screen, press any key on
the keyboard. 

The main menu that appears on the screen after the introduction
can be visualized as the table of contents for your system.  It 
is a menu containing all major features in the system.  The main 
menu displays six sorting algorithms that are grouped into two types 
(Insertion and Exchange).


Receiving HELP by Pressing F1

Use the Sorting Tutor's Help key (F1) to answer any questions that you
may have.  The Help key is context-sensitive, which means the Sorting 
Tutor will offer help to current situations.  For example, if you are 
currently at the main menu and press the F1 key, the system will offer 
help that is related to the main menu screen. 


Selecting a Menu Option

The Sorting Tutor offers you an an attractive and user friendly menu 
environment.  You may use the following keys when selecting an option from 
any menu screen that the Sorting Tutor displays:

     UP ARROW      Allows you to highlight the previous item on the menu.

     DOWN ARROW    Highlights the next item in the menu.

     FIRST LETTER  When you press the first highlighted menu letter, the 
                   computer will automatically choose this option.


** Please Note:  Additional help is available by highlighting the desired
   letter option (use the arrow keys) and reading the message located at
   the bottom of the screen.


System Requirements

There are certain hardware and software requirements to run the Sorting 
Tutor.  The following requirements are needed before the Sorting Tutor can 
function:

     
   MINIMUM INTERNAL MEMORY:      640K RAM

   MINIMUM DISK CONFIGURATION:   One diskette drive (5" or 3" Drive)

   OPERATING SYSTEM:             PC-DOS, Ver. 2.0 or higher
                                 MS-DOS, Ver. 2.0 or higher 

   COMPUTERS:                    IBM PC, PC-XT, PC-AT, PS/2, or 100% 
                                 compatible

   GRAPHICS CARD:                Required to display graphs or receive 
                                 context sensitive HELP.
GETTING STARTED


Installing The Program to a Hard Drive   (optional)

   Although this program can run on a floppy disk, this program
   can also be installed on a hard drive with .360MEG of
   available disk space.

   As you will see, installing this program on a hard drive is
   very easy.  The following steps will install the original
   program from drive A to drive C:

          1.  Place the program disk in drive A.
          2.  Type:   
                   A:   
              and then press Enter.
          3.  Type:
                   INSTALL
              and then press Enter.

   Once you have completed these three steps, the computer will
   copy all the necessary files on drive A to a sub-directory
   in drive C  (called SORTING).  This should take
   approximately 1.5 minutes.  After all drive activity has
   stopped, you may remove the original diskette and store it
   in a safe place.
GENERAL SORTING INFORMATION


This section covers the first option on the main menu screen and explains
the importance of sorting data elements on a computer.  If you are unfamiliar 
with the concepts behind sorting, please take the time to read this section 
on the main menu.  You should also use the glossary in the back of this 
manual whenever a term is unclear to you.

Since this is a information section, the F1 key will not provide help in 
this section.
BUBBLE SORT        3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3


By selecting this option from the main menu screen, you can choose any option
that is displayed on the submenu screen.  A SUB-MENU will illustrate the 
options that are available to you.  This section describes these options.

The bubble sort is one of the easiest sorting routines to learn.


Background Information

   The background information on the bubble sort offers novice programmers a
   description of the algorithm and code that is used in this simulation.

   The word 'BUBBLE' refers to the way in which a data item works its way up
   the list until it is in ascending or descending order.  This technique is
   the easiest way for novice programmers to learn computerized sorting.  In
   practice, when data is very close to being sorted, a bubble sorting 
   routine with a simple flag is an easy solution.

   Although the bubble sort is a routine designed to sort any number of 
   elements in an array, sorting large amounts of data would dramatically 
   increase sorting time.  The bubble sort technique requires approx.  * N
   operations (N is the total number of elements in the array).  


Graphical Sorting

   This process graphically demonstrates the bubble sorting technique.  You 
   will be required to enter the number of elements to sort.  This number can
   be as large as 3000 or as small as 2, the Sorting Tutor requires more time
   to complete a sort of larger numbers.  

   This process illustrates the characteristics of the bubble sort.  The 
   X-axis (bottom horizontal line) represents the array positions, and the
   Y-axis (left vertical line) is the number assigned to that position.  
   White dots (black in Fig. 3-2) represent unsorted data and red dots 
   represent sorted data.  A red diagonal line will form (ie., array(1) = 1,
   array(2) = 2 ... array(n) = n) as the data is sorted.

   After you enter the number of data items to sort, the Sorting Tutor will 
   generate and sort this random set of unique integers (no number will occur
   twice).  To provide an overview of this sorting process, the demonstration
   is completely automatic.  You may press the pause key (CTRL-S) to freeze
   the current screen display.  Press any key when you are ready to resume 
   this demo.  By pressing the ESC key, the Sorting Tutor will return you to
   the submenu screen displayed in figure 3-1.  Once you have completed the 
   demo, the Sorting Tutor will also display the time it took to complete the
   bubble sorting process.

   As you can observe from this process, bubble sorting is a very slow and 
   time consuming process.  The shaker sort algorithm offers an improvement
   over the bubble sorting technique (refer to chapter 4).


   ** Please Note:  Due to physical mapping of dots on the screen, the 
      Sorting Tutor may misrepresent (ie., erase 2 dots instead of one)
      numbers greater than 190.  You may enter numbers greater than 190, but
      keep in mind that all of the dots may not be visible.

BUBBLE SORT


Program Code Sorting

   This process will use a QuickBASIC algorithm to demonstrate the bubble 
   sort.  Before the process can start, you must answer these two questions:

QUESTION 1:

   Enter the number of seconds to pause between sorting steps:
   ( 0 will wait for the user to press any key. ):  [   ]


ANSWER:   Use a number of seconds between each step of the sorting
          algorithm.  This number can be any number between 0 and
          99999.  Enter a '0' to control each step.  10 to 20 seconds
          is normal for beginners.


QUESTION 2:

   Do you want to enter the sample data (2 to 11 items)? (Y\N):


ANSWER:   Enter 'Y' for YES and 'N' for NO.  If you want to
          type in your own words, enter 'Y'.  A 'N' response will
          instruct the Sorting Tutor to choose 11 words at random from
          its data base.



   Once you have responded to the two questions above, the Sorting Tutor will
   sort the array.  If you find that the process is going too fast, you may 
   press the PAUSE key (or CTRL-S) to freeze the screen display.  Press any 
   key when you are ready to resume the process.  If you understand the 
   bubble sorting concept or simply want to return to the submenu, press the 
   ESC key to permit the Sorting Tutor to operate at its fastest speed.


  ** Please Note:  Pressing F1 on any line of code in this sorting algorithm
     will offer you a description of the program code that is displayed on 
     the screen.


Return to MAIN MENU

   By pressing the 'R' key at the submenu screen (you may also highlight 
   this option), the Sorting Tutor will display the main menu screen.
SHAKER SORT        4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 


By selecting this option from the main menu screen, you can choose any
option that is displayed on the submenu screen.  This submenu will illustrate
the options that are available to you.  This section describes these options.


Background Information

   The background information on the shaker sort offers novice to advanced
   programmers a description of the algorithm and code that is used in this
   simulation.

   Like the BUBBLE sort, the word 'SHAKER' refers to the way in which a data 
   item works its way up and down the list until it is in ascending or 
   descending order.  This technique is compared to a cocktail SHAKER for its
   process of sorting data.  

   The shaker sort is also designed just like the BUBBLE sort except this 
   algorithm utilizes a boolean (TRUE\FALSE) flag to indicate whether the 
   elements being compared are already in order.  If they are in their proper
   place, then these elements are considered to be sorted.   The improvements
   to the shaker sort may seem good, but it really makes little difference 
   when sorting a large number elements (the number of exchanges is identical
   to those of the bubble sort).


Graphical Sorting

   This process graphically demonstrates the shaker sort technique.  You will
   be required to enter the number of elements to sort.  This number can be 
   as large as 3000 or as small as 2, but the Sorting Tutor requires more time
   to complete a sort of larger numbers.  

   The graph illustrates the characteristics of the shaker sort.  The X-axis
   (bottom horizontal line) represents the array positions, and the Y-axis
   (left vertical line) is the number assigned to that position.  White dots 
   represent unsorted data and red dots represent sorted data.  A red 
   diagonal line will form (ie., array(1) = 1, array(2) = 2 ... array(n) = n)
   as the data is sorted.

   After you enter the number of data items to sort, the Sorting Tutor will 
   generate and sort this random set of unique integers (no number will occur
   twice).  To provide an overview of this sorting process, the demonstration
   is completely automatic.  You may press the pause key (CTRL-S) to freeze 
   the current screen display.  Press any key when you are ready to resume 
   this demo.  By pressing the ESC key, the Sorting Tutor will return you to
   the submenu screen displayed in figure 4-1.  Once you have completed the 
   demo, the Sorting Tutor will also display the time it took to complete the
   shaker sorting process.

   As you can observe from comparing the shaker and bubble sorting graphs, 
   the shaker sort works from both sides of the graph.  Although this 
   algorithm may seem better, the time to sort larger numbers is about the 
   same.


   ** Please Note:  Due to physical mapping of dots on the screen, the 
      Sorting Tutor may misrepresent (ie., erase 2 dots instead of one) 
      numbers greater than 190.  You may enter numbers greater than 190, but
      keep in mind that all of the dots may not be visible.
SHAKER SORT


Program Code Sorting

   ( See Program Code Sorting for Bubble Sorting )

Return to MAIN MENU

   By pressing the 'R' key at the submenu screen (you may also highlight
   this option), the Sorting Tutor will display the main menu screen.
QUICKSORT          5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5


By selecting this option from the main menu screen, you can choose any 
option that is displayed on the submenu screen.  The submenu will illustrate
the options that are available to you.  This section describes these options.


Background Information

   The background information on the quick sort offers you a description of 
   the algorithm and code that is used in this simulation.  The quick sort is
   well suited for advanced programmers.

   Although it may seem that the quick sort is the fastest algorithm, it is 
   not always as quick as expected.  The goal in the quick sort is to select
   a pivot which is well positioned relative to the data.  A poor use of the
   quick sort would be to sort data that is already completely sorted.


Graphical Sorting

   This process graphically demonstrates the quick sort technique.  You will
   be required to enter the number of elements to sort.  This number can be 
   as large as 3000 or as small as 2, but the Sorting Tutor requires more 
   time to complete a sort of larger numbers.  

   The graph displayed in figure 5-2 illustrates the characteristics of the 
   quick sort.  The X-axis (bottom horizontal line)  represents the array 
   positions, and the Y-axis (left vertical line) is the number assigned to
   that position.  White dots represent unsorted data and red dots represent 
   sorted data.  A red diagonal line will form (ie., array(1) = 1, array(2)
   = 2 ... array(n) = n) as the data is sorted.

   After you enter the number of data items to sort, the Sorting Tutor will
   generate and sort this random set of unique integers (no number will occur
   twice).  To provide an overview of this sorting process, the demonstration
   is completely automatic.  You may press the pause key (CTRL-S) to freeze 
   the current screen display.  Press any key when you are ready to resume 
   this demo.  By pressing the ESC key, the Sorting Tutor will return you to
   the submenu screen.
 
   Once you have completed the demo, the Sorting Tutor will also display the
   time it took to complete the shaker sorting process.

   As you can observe from this process, the quick sort is very fast in its 
   sorting procedure (3000 elements take approx. 29 seconds on a 386 33MHZ 
   computer).  You can also see how quickly the partitions (square blocks) 
   are formed and sorted from this process.

   ** Please Note:  Due to physical mapping of dots on the screen, the 
      Sorting Tutor may misrepresent (ie., erase 2 dots instead of one)
      numbers greater than 190.  You may enter numbers greater than 190,
      but keep in mind that all of the dots may not be visible.

Program Code Sorting


   This process will use a QuickBASIC algorithm to demonstrate the quick 
   sort.  Before the process can start, you must answer these two questions:
 
   **** SEE PROGRAM SORTING under the bubble sort for more help.

Return to MAIN MENU

   By pressing the 'R' key at the submenu screen (you may also highlight this
   option), the Sorting Tutor will display the main menu screen.
LINEAR INSERTION SORT   6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6


By selecting this option from the main menu screen, you can choose any
option that is displayed on the submenu screen.  The submenu will illustrate
the options that are available to you.  This section describes these options.

The Linear insertion sort is one of the basic examples of  INSERTION SORTS. 


Background Information

   The background information on the linear insertion sort offers novice and
   advanced programmers a description of the algorithm and code that is used
   in this simulation.

   The linear insertion process is similar to the process of picking up cards
   one by one in a bridge game.  When you choose a new card, you insert it 
   into its correct position (RELATIVE TO THE OTHER CARDS IN YOUR HAND).


Graphical Sorting

   This process graphically demonstrates the linear insertion sort technique.
   You will be required to enter the number of elements to sort.  This number
   can be as large as 3000 or as small as 2, but the Sorting Tutor requires 
   more time to complete a sort of larger numbers.  

   The graph illustrates the characteristics of the linear insertion sort.  
   The X-axis (bottom  horizontal line)  represents the array positions, and
   the  Y-axis (left vertical line) is the number assigned to that position.
   White dots (black in Fig. 6-2) represent unsorted data and red dots
   represent sorted data.  A red diagonal line will form (ie., array(1) = 1,
   array(2) = 2 ... array(n) = n) as the data is sorted.

   After you enter the number of data items to sort, the Sorting Tutor will
   generate and sort this random set of unique integers (no number will occur
   twice).  To provide an overview of this sorting process, the demonstration
   is completely automatic.  You may press the pause key (CTRL-S) to freeze 
   the current screen display.  Press any key when you are ready to resume
   this demo.  By pressing the ESC key, the Sorting Tutor will return you to
   the submenu screen.  Once you have completed the demo, the Sorting Tutor
   will also display the time it took to finish the linear insertion 
   sorting process.

   As you can observe from this process, the linear insertion sort inserts 
   all unsorted data into a sorted "diagonal like" line.  Although this is 
   the same process that is used in binary insertion sort, linear insertion 
   sort take a longer amount of time to insert unsorted elements.


   ** Please Note:  Due to physical mapping of dots on the screen, the 
      Sorting Tutor may misrepresent (ie., erase 2 dots instead of one)
      numbers greater than 190.  You may enter numbers greater than 190, but
      keep in mind that all of the dots may not be visible.
LINEAR INSERTION SORT


Program Code Sorting

   This process will use a QuickBASIC algorithm to demonstrate the linear 
   insertion sort.  Before the process can start, you must answer these two
   questions (SEE program sorting for BUBBLE SORT).


Return to MAIN MENU

   By pressing the 'R' key at the submenu screen (you may also highlight this
   option), the Sorting Tutor will display the main menu screen.
BINARY INSERTION SORT   7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7


By selecting this option from the main menu screen, you can choose any 
option that is displayed on the submenu screen.  The submenu illustrates the
options that are available to you.  This section describes these options.


Background Information

   The background information on the binary insertion sort offers novice and
   advanced programmers a description of the algorithm and code that is used 
   in this simulation.

   The binary insertion sort works by dividing sorted elements into equal 
   halves.  The next step is to compare the two halves and determine in which
   half the new data element should be placed.  This process is repeated 
   until the new element can be inserted into the array.

   Although the above practice may seem to involve many steps, the binary
   insertion sort requires an amazingly small number of "guesses" to find
   its position.  For example, this process could easily guess your name
   within 20 tries.  If your name is in a phone directory, locate the person
   that is in the center of the book (approx.).  Now, decide whether this 
   name is before or after your name.  Since you are searching in smaller and
   smaller halves, the dividing property of the binary insertion process will
   find your name within 20 guesses (unless the directory has more than 219 =
   1,048,576 entries). 


Graphical Sorting

   This process graphically demonstrates the binary insertion sort technique.
   You will be required to enter the number of elements to sort.  This number
   can be as large as 3000 or as small as 2, but the Sorting Tutor will 
   require more time to complete a sort of larger numbers.  The graph 
   displayed in figure 7-2 illustrates the characteristics of the binary
   insertion sort.  The X-axis (bottom  horizontal line)  represents the 
   array positions, and the  Y-axis (left vertical line) is the number 
   assigned to that position.  White dots (black in Fig. 7-2) represent 
   unsorted data and red dots represent sorted data.  A red diagonal line
   will form (ie., array(1) = 1, array(2) = 2 ... array(n) = n) as the data
   is sorted.

   After you enter the number of data items to sort, the Sorting Tutor will
   generate and sort this random set of unique integers (no number will occur
   twice).  To provide an overview of this sorting process, the demonstration
   is completely automatic.  You may press the pause key (CTRL-S) to freeze 
   the current screen display. Press any key when you are ready to resume 
   this demo.  By pressing the ESC key, the Sorting Tutor will return you to
   the submenu screen.  Once you have completed the demo, the Sorting Tutor
   will also display the time it took to finish the binary insertion sorting
   process.

   As you can observe from this process, the binary insertion sort inserts
   all unsorted data into a sorted "diagonal like" line.  Although this is
   the same process that is used in linear insertion sort, the binary 
   insertion sort can quickly find a position to insert unsorted elements.

   ** Please Note:  Due to physical mapping of dots on the screen, the 
      Sorting Tutor may misrepresent (ie., erase 2 dots instead of one)
      numbers greater than 190.  You may enter numbers greater than 190, but
      keep in mind that all of the dots may not be visible.
BINARY INSERTION SORT


Program Code Sorting

   This process will use a QuickBASIC algorithm to demonstrate the binary 
   insertion sort.  Before the process can start, you must answer two 
   questions:   (SEE PROGRAM CODE SORTING UNDER bubble sort)


Return to MAIN MENU

   By pressing the 'R' key at the submenu screen (you may also highlight this
   option), the Sorting Tutor will display the main menu screen.
SHELL SORT         8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8


y selecting this option from the main menu screen, you can choose 
any option that is displayed on the submenu screen.  The submenu will 
illustrate the options that are available to you.  This section describes
these options.

Although advanced programmers can study the quick sorting time, the Shell 
sort is also well suited for novice programmers.


Background Information

   The background information on the Shell sort offers novice programmers 
   a description of the algorithm and code that is used in this simulation.

   The Shell sort (named after Donald L. Shell) is a variation of the 
   insertion sort.  When sorting large arrays, this sorting algorithm is much
   faster than the BUBBLE sort.  The Shell sort compares items that are a 
   given number of elements away (usually INT(n/2)) and it will eventually
   compare items that are close together.  If these items are out of their
   proper order, a swap is performed.  The Shell sort yields faster results
   than would be expected by examining its algorithm.


Graphical Sorting

   This process graphically demonstrates the Shell sort technique.  You will
   be required to enter the number of elements to sort.  This number can be
   as large as 3000 or as small as 2, but the Sorting Tutor will require more
   time to complete a sort of larger numbers.  

   The graph displayed in figure 8-2 illustrates the characteristics of the
   Shell sort.  The X-axis (bottom horizontal line)  represents the array 
   positions, and the Y-axis (left vertical line) is the number assigned to
   that position.  White dots (black in Fig. 8-2) represent unsorted data and
   red dots represent sorted data.  A red diagonal line will form (ie., 
   array(1) = 1, array(2) = 2 ... array(n) = n) as the data is sorted.

   After you enter the number of data items to sort, the Sorting Tutor will
   generate and sort this random set of unique integers (no number will occur
   twice).  To provide an overview of this sorting process, the demonstration
   is completely automatic.  You may press the pause key (CTRL-S) to freeze 
   the current screen display.  Press any key when you are ready to resume
   this demo.  By pressing the ESC key, the Sorting Tutor will return you to
   the submenu screen. Once you have completed the demo, the Sorting Tutor
   will also display the time it took to complete the Shell sorting process.

   As you can observe from this process, the Shell sort quickly brings data
   items closer to the sorted diagonal line.  Although this is not as fast as
   the recursive quick sort, the memory required to operate the Shell sort is
   much lower (recursive algorithms require more memory for each recursive
   call).

   ** Please Note:  Due to physical mapping of dots on the screen, the 
      Sorting Tutor may misrepresent (ie., erase 2 dots instead of one)
      numbers greater than 190.  You may enter numbers greater than 190,
      but keep in mind that all of the dots may not be visible.
SHELL SORT


Program Code Sorting


   This process will use a QuickBASIC algorithm to demonstrate the Shell 
   sort.   Before the process can start, you must answer these two 
   questions: (SEE program sorting for the bubble sort)


Return to MAIN MENU

   By pressing the 'R' key at the submenu screen (you may also highlight
   this option), the Sorting Tutor will display the main menu screen.
CHANGE COLOR ON\OFF     9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9


If you are using a monochrome monitor that does not display colors, you
may use this option to turn the colors off. When you select this option
again, the colors will be enabled.


   ** Please Note:  If you do not have a color adapter card for your 
      computer, changing the color will NOT enable you to display graphs.
      Refer to your operations manual that came with your computer to verify
      if your computer can display graphics.
GLOSSARY                                                   [A] - [D]




ALGORITHM  An algorithm is a sequence of instructions that tell
how to solve a particular problem.  An algorithm must be
specified exactly, so there can be no doubt about what to do
next, and it must have a finite number of steps.  A computer
program is an algorithm.

ARRAY  An array is a collection of data that is referred to by
one name.

ARROW KEYS  The cursor keys are located on the right hand side of
the keyboard.  They are labeled with both numbers and arrows. 
These keys can be used to highlight a menu option.  The light on
the Num. Lock key must be off in order to allow these keys to
move the cursor.

BYTE   A byte is the amount of memory space needed to store one
character, which is normally 8 bits.  A computer with 8-bit bytes
can distinguish 256 different characters.

COMPATIBLE   Two computers are said to be compatible if they can
use the same programs.

COMPILER   A compiler is a computer program that translates a
high level language into machine language.

COPY   To copy information is to transfer the information to
another location, leaving the original information unchanged.

CURSOR   The cursor is the symbol on a computer terminal that
shows you where the next character you type will appear on the
screen.

DATA  Data is factual information.  Data is the plural of the
word datum, which means "a singlefact."

DATA BASE   A data base is a collection of data stored on a
computer storage medium, such as a disk, that can be used for
more than one purpose.

DATA BASE MANAGEMENT   Data base management is the task of
storing data in a data base and retrieving information from that
data.

DISK DRIVE   A disk drive is a device that enables a computer to
read and write data on disks.

DOS   DOS (Disk Operating System) has been used by many computer
manufacturers as a name for various operating systems.


GLOSSARY                                                   [E] - [Q]




ENTER KEY   The enter key on a computer terminal is the key you
press at the end of each line in order to enter the contents of
that line into the computer.

F1  This is a function key which is located on the left side of
the keyboard (or along the top).  Function keys are referred to
as F1, F2, F3, ... F12.  When an instruction lists a number
preceded by an F, the function keys are used.

FILE   A file is a collection of information stored as records.

FLOPPY DISK   A floppy disk is a computer storage medium made of
plastic which is covered with a magnetic coating.

HARD COPY   A hard copy is a printout on paper of computer
output.

HARD DISK   A hard disk is a storage medium using rigid aluminum
disks coated with iron oxide.

HARDWARE   The hardware in a computer system consists of all the
physical elements in the computer such as integrated circuits,
wires, and terminals.

INPUT   The input to a computer is the data is that are fed into
the computer for it to process.

MACHINE LANGUAGE   A machine language contains instructions that
a computer can execute directly.

MAIN MENU  The main menu is the table of contents for your
system.  It is a menu containing all major features in the
system.

MEG   MEG stands for megabyte which refers to a memory size of
1,048,576 bytes.

MS-DOS   MS-DOS, the MicroSoft Disk Operating System, is an
operating system for computers that use the 8086 or 8088
microprocessor.

OUTPUT   The output of a computer is the information that the
computer generates as a result of its calculations.

QuickBASIC   QuickBASIC is one of the easiest computer languages
to learn.  B.A.S.I.C. stands for Beginners All-purpose Symbolic
Instructional Code and was originally developed by John Kemeny
and Thomas Kurtz.


GLOSSARY                                                   [R] - [S]


RECURSION   The use of a program that calls itself while it is
being executed.

RUN   Used to describe the execution process of a program.  In
general, most programs are executed at the DOS prompt by typing
in the name of the program and pressing the ENTER key.

SCREEN  The information displayed on your monitor.

SORT   To sort a group of items, such as the elements in an array or
the records of a file, is to arrange them in numerical or alphabetical
order.
REFERENCES




The follow references may offer you additional help on the
sorting process:



Box, Richard and Stephen Lacey, April, 1991.  "A Fast, Easy
     Sort", BYTE, V16.,  pp. 315-320.
 
Knuth, Donald E., The Art of Computer Programming, Vol. 3:   
     Sorting and Searching, Addison-Wesley, 1973, pp. 73-    
     180.

Lorin, Harold, Sorting and Sort Systems, Addison-Wesley,     
     1975, pp. 1-173.

Wirth, Nicklaus, Algorithms + Data Structures = Programs,    
     Prentice-Hall, 1976, pp. 56-87.

